#业务类

import allure
#导入该业务有关的N个页面类
from page.page_ui1 import PageUi1
from page.page_ui2 import PageUi2
from page.page_ui3 import PageUi3

class ServiceLogin(object):
    def __init__(self,driver,base_url):
        #把driver传递给N个页面层
        self.ui1=PageUi1(driver,base_url)
        self.ui2=PageUi2(driver,base_url)
        self.ui3=PageUi3(driver,base_url)

    #断言逻辑：个人中心页面中昵称H2的文本内容=nswe，欢迎光临
    def service_login_001(self,d):
        #让每个UI对象完成各个UI本身的业务操作
         #让ui1页面对象完成的操作
        allure.attach("","步骤1：打开网页")
        self.ui1.openUrl()
        allure.attach("", "步骤2：点击登录按钮")
        self.ui1.click_login()

        #让ui2页面对象完成的操作
        allure.attach("", f"步骤3：输入账号：{d['zanhao']}")
        self.ui2.input_zanhao(d["zanhao"])
        self.ui2.input_pwd(d["pwd"])
        self.ui2.click_login()

        #让ui3页面对象完成的操作
        siji=self.ui3.getNicenText()

        #把登录结果页（即个人中心页面）截图
        imgName=self.ui3.savePng("登录",d["key"])
        allure.attach(open(f'./screen/{imgName}', 'rb').read(), "步骤4：登录结果页面截图", allure.attachment_type.PNG)
        return d["yuqi"]==siji

    # 断言逻辑：登录页中错误提升div标签的文本内容：账号或密码错误
    def service_login_002(self, d):
        self.ui1.openUrl()
        self.ui1.click_login()

        # 让ui2页面对象完成的操作
        self.ui2.input_zanhao(d["zanhao"])
        self.ui2.input_pwd(d["pwd"])
        self.ui2.click_login()
        siji=self.ui2.getErrorTipText()
        return d["yuqi"] in siji

    # 断言逻辑：登录页面的“账号”的class属性有：invalid-text 值
    def service_login_003(self, d):
        self.ui1.openUrl()
        self.ui1.click_login()

        # 让ui2页面对象完成的操作
        self.ui2.input_zanhao(d["zanhao"])
        self.ui2.input_pwd(d["pwd"])
        self.ui2.click_login()
        siji=self.ui2.getEleZanhaoClass() #"input_text     invalid-text"
        return d["yuqi"] in siji

